#ifndef ABILITYROTATIONSTATES_H
#define ABILITYROTATIONSTATES_H
#include "abilityRotationState.h"

class Rotation;

class Normal_Rotation : public AbilityRotationState
{
private:
  Normal_Rotation(){}
public:
  static Normal_Rotation* Instance();
  void enter  (AbilityRotation* abilityRotation);
  void execute(AbilityRotation* abilityRotation);
  void exit   (AbilityRotation* abilityRotation);
};

class No_Rotation : public AbilityRotationState
{
private:
  No_Rotation(){}
public:
  static No_Rotation* Instance();
  void enter  (AbilityRotation* abilityRotation);
  void execute(AbilityRotation* abilityRotation);
  void exit   (AbilityRotation* abilityRotation);
};

class Accelerate_Rotation : public AbilityRotationState
{
private:
  Accelerate_Rotation(){}
public:
  static Accelerate_Rotation* Instance();
  void enter  (AbilityRotation* abilityRotation);
  void execute(AbilityRotation* abilityRotation);
  void exit   (AbilityRotation* abilityRotation);
};

class Decelerate_Rotation : public AbilityRotationState
{
private:
  Decelerate_Rotation(){}
public:
  static Decelerate_Rotation* Instance();
  void enter  (AbilityRotation* abilityRotation);
  void execute(AbilityRotation* abilityRotation);
  void exit   (AbilityRotation* abilityRotation);
};

#endif